package puntaelena.graphsupport;

public class NativeGraphSupportBridge {
	static {
		System.loadLibrary("graphsupport");
	}

	public static native void nativeSolve(
		int nativeSolver_ptr,
		FacilitiesGraph fgraph,
		boolean[] isfcltOpen,
		int[] witnesses
	);

	/**
	 * @param nativeSolverPtr -- reinterpret_cast< int >( IFacilityLocationSolverPtr * )
	 */
	public static native void nativeDisposeSolver(
		int nativeSolverPtr
	);

	public static native Graph nativeGenerate(
		int nativeGeneratorPtr,
		GenerateGrSettings settings
	);

	public static native void nativeDisposeGenerator(
		int nativeGeneratorPtr
	);

	public static native int defaultExpensiveCheapGeneratorPtr();

	public static native int binarySolverPtr();

	public static native int trivialSolverPtr();

	public static native int factor3SolverPtr();
}
